﻿// 开发者:micropu
// 公司:佛山远钧智慧科技有限公司

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Admin.NET.Application;
/// <summary>
/// 数据协议
/// </summary>
public class MainData
{
    public byte Header { get; } = 0x01;
    public uint ContentLen { get; }
    public uint PackageIndex { get; } = 0;
    public uint PackageCount { get; } = 0;
    public byte Version { get; } = 0x01;
    public ushort Command { get; }
    public byte[] SessionId { get; }
    public byte[] Content { get; }
    public byte Flag { get; } = 0x00;
    public byte Tail { get; } = 0x01;

    public MainData(ushort command, byte[] content)
    {
        ContentLen = (uint)content.Length;
        Command = command;
        SessionId = Guid.NewGuid().ToByteArray(); ;
        Content = content;
    }

    public byte[] GetBytes()
    {
        List<byte> bytes = new List<byte>();
        bytes.Add(Header);
        bytes.AddRange(BitConverter.GetBytes(ContentLen));
        bytes.AddRange(BitConverter.GetBytes(PackageIndex));
        bytes.AddRange(BitConverter.GetBytes(PackageCount));
        bytes.Add(Version);
        bytes.AddRange(BitConverter.GetBytes(Command));
        bytes.AddRange(SessionId);
        bytes.AddRange(Content);
        bytes.Add(Flag);
        bytes.Add(Tail);
        return bytes.ToArray();
    }
}
